Is Functional Programming A Good Idea